程序变换 / 程序转换:指在保持程序语义(功能)不变的前提下,对源代码或中间表示进行系统性的改写与重组,以达到某些目标,如优化性能、便于并行化、提高可读性/可维护性、移植到不同平台或增强安全性等。(在编译器与软件工程中都很常见;也可指把程序从一种形式“变形”为另一种形式。)
/ˈproʊɡræm ˌtrænsfərˈmeɪʃən/
Program transformation can optimize code without changing what it does.
程序变换可以在不改变程序功能的情况下优化代码。
Through a series of semantics-preserving program transformations, the compiler rewrote the loop to improve cache locality and enable vectorization.
通过一系列保持语义不变的程序变换,编译器重写了该循环,以改善缓存局部性并启用向量化。
program 源自希腊语 programma(“公告、书面命令/计划”),经拉丁语与法语进入英语,逐渐发展为“计划、程序(代码)”。
transformation 源自拉丁语 transformare(trans- “跨越/改变” + formare “塑形”),意为“使改变形态”。合在一起即“对程序进行形式上的改写/变形”。